09 请求方法
标准请求方法
HTTP/1.1 规定了八种方法,单词都必须是大写的形式:
GET:获取资源,读取或者下载数据;
HEAD:获取资源的元信息;
POST:向资源提交数据,写入或上传数据;
PUT:类似 POST,多用于修改数据;
DELETE:删除资源;
CONNECT:建立特殊的连接隧道;
OPTIONS:列出可对资源实行的方法;
TRACE:追踪请求 - 响应的传输路径。
GET
请求从服务器获取资源,资源可以是静态的文本、页面、图片、视频,也可以是由 PHP、Java 动态生成的页面或者其他格式的数据。
- 在 URI 后使用“#”,可以在获取页面后直接定位到某个标签所在的位置;
- 使用 If-Modified-Since 字段,仅当资源被修改时才会执行获取动作;
- 使用 Range 字段,只获取资源的一部分数据。
HEAD
与 GET 方法类似,请求从服务器获取资源,服务器的处理机制也一样,但服务器不返回请求的实体数据,只会传回响应头,即资源的元信息。
- 检查一个文件是否存在;
- 检查文件是否有最新版本。
POST
向 URI 指定的资源提交数据,数据放在报文的 body 里。
- 发动态;
- 向购物车添加商品。
PUT
作用与 POST 类似,向服务器提交数据,通常 POST 用来新建 create,而 PUT 则是修改 update。
DELETE
让服务器删除资源,通常服务器不会执行真正的删除操作,而是对资源做一个删除标记。
CONNECT
让服务器为客户端和另一台远程服务器建立一条特殊的连接隧道,这时 Web 服务器在中间充当了代理的角色。
OPTIONS
让服务器列出可对资源实行的操作方法,在响应头的 Allow 字段里返回。
TRACE
用于对 HTTP 链路的测试或诊断,可以显示出请求 - 响应的传输路径。
安全与幂等
安全:指请求方法不会破坏服务器上的资源,即不会对服务器上的资源造成实质的修改。
GET 和 HEAD 方法 是安全的,无论 GET 和 HEAD 操作多少次,服务器上的数据都是安全的。
POST/PUT/DELETE 操作会修改服务器上的资源,增加或删除数据,是不安全的。
幂等:多次执行相同的操作,结果也都是相同的,即多次幂后结果相等。